package 正则表达式.概述初体验;

public class Test {
    public static void main(String[] args) {
        // 目标: 体验一下使用正则表达式来校验数据格式的合法性
        // 需求: 校验QQ号是否正确, 要求全是数字, 长度是(6-20)之间, 不能以零开头

        // 普通方法
        System.out.println(checkQQ(null));
        System.out.println(checkQQ("12124232"));
        System.out.println(checkQQ("123wer1312"));

        // 正则表达式
        System.out.println(checkQQ1(null));
        System.out.println(checkQQ1("12124232"));
        System.out.println(checkQQ1("123wer1312"));

    }

    public static boolean checkQQ1(String qq) {
        return qq != null && qq.matches("[1-9]\\d{5,19}");
    }
    public static boolean checkQQ(String qq) {
        // 1. 判断qq号码是否为null
        if (qq == null || qq.startsWith("0") || qq.length() < 6 || qq.length() > 20) {
            return false;
        }
        // 2. 判断qq号是否全是数字
        for (int i = 0; i < qq.length(); i++) {
            // 根据索引提取当前位置处的字符
            char ch = qq.charAt(i);
            // 判断c记住的字符,如果不是数字, qq号不合法
            if (ch < '0' || ch > '9') {
                return false;
            }
        }
        return true;
    }
}
